Border Gateway Protocol (BGP) is a standardized gateway protocol designed to exchange routing and reachability information between autonomous systems (AS) on the Internet. BGP is involved in making core routing decisions based on paths, network policies or rule-sets configured by a network administrator. BGP may be used for routing within an AS. Internet service providers can use BGP to establish routing between one another. In addition, large private Internet Protocol (IP) networks may use BGP internally.
sFlow is an industry standard for packet export at Layer 2 of the Open Systems Interconnection (OSI) model. sFlow is supported by a number of platforms and vendors. It provides complete packet header and switching/routing information that permits detailed analysis of L2-L7 traffic flows. sFlow uses sampling to achieve scalability, and thus is applicable to high speed networks. sFlow provides visibility of network usage and active routes of high-speed networks, thus providing the data required to effectively control and manage network usage. sFlow samples are sent as sFlow datagrams to a central server running the sFlow collector, which analyzes and reports on network traffic.
sFlow samples tagged with BGP metadata allow Content Delivery Networks (CDNs) to efficiently manage network resources. For example, with BGP metadata in sFlow samples, CDNs can see what path a packet is taking and adjust routing accordingly. This gives content or service providers a general idea of network traffic status and enables finer grained management of network resources and distribution of network traffic load.
Because network routes update constantly and because of the redundancy of BGP information, finding up-to-date BGP metadata for BGP routes can be a computationally intensive problem that requires a huge amount of CPU and memory resources. Accordingly, techniques for allowing efficient, CPU-optimized design and implementation that combines BGP metadata with sFlow samples are desirable.